Page({
  data: {
    product: null, // 商品数据
    quantity: 1, // 购买数量
    selectedSpecs: {}, // 已选择的商品属性
    cartItemCount: 0 // 购物车商品数量，用于显示角标
  },

  onLoad: function (options) {
    const productId = options.id;
    this.loadProductDetail(productId);
    this.updateCartCount(); // 更新购物车角标
  },

  // 模拟加载商品详情
  loadProductDetail: function (id) {
    wx.showLoading({ title: '加载中...' });
    setTimeout(() => {
      const mockProduct = {
        id: id,
        name: `精品商品 ${id} - 【限时优惠】高品质多功能智能家居产品，为您打造舒适生活！`,
        price: (Math.random() * 200 + 100).toFixed(2),
        originalPrice: (Math.random() * 300 + 200).toFixed(2),
        sales: Math.floor(Math.random() * 5000) + 1000,
        stock: Math.floor(Math.random() * 200) + 50,
        images: [
          `https://picsum.photos/id/${parseInt(id) + 10}/800/800`,
          `https://picsum.photos/id/${parseInt(id) + 11}/800/800`,
          `https://picsum.photos/id/${parseInt(id) + 12}/800/800`
        ],
        specs: [ // 商品属性，例如颜色、尺码
          {
            key: 'color',
            name: '颜色',
            options: ['黑色', '白色', '蓝色', '红色']
          },
          {
            key: 'size',
            name: '内存',
            options: ['64GB', '128GB', '256GB']
          }
        ],
        // 商品详情可以是富文本，也可以是图片列表
        details: '<p>这是一款非常棒的商品，具有以下特点：</p><ul><li><b>功能强大</b>：满足您的日常需求</li><li><b>设计精美</b>：时尚大气，彰显品味</li><li><b>材质优良</b>：经久耐用，品质保证</li></ul><p>更多详情请看下图：</p>',
        detailImages: [
          `https://picsum.photos/id/${parseInt(id) + 20}/800/1200`,
          `https://picsum.photos/id/${parseInt(id) + 21}/800/1200`,
          `https://picsum.photos/id/${parseInt(id) + 22}/800/1200`
        ]
      };

      // 默认选中第一个属性
      let defaultSelectedSpecs = {};
      mockProduct.specs.forEach(spec => {
        if (spec.options.length > 0) {
          defaultSelectedSpecs[spec.key] = spec.options[0];
        }
      });

      this.setData({
        product: mockProduct,
        selectedSpecs: defaultSelectedSpecs
      });
      wx.hideLoading();
    }, 800);
  },

  // 更新购物车角标数量
  updateCartCount: function () {
    // 实际项目中应从缓存或全局状态获取购物车数量
    const cart = wx.getStorageSync('cart') || [];
    let count = 0;
    cart.forEach(item => {
      count += item.quantity;
    });
    this.setData({ cartItemCount: count });
  },

  // 选择商品属性
  selectSpec: function (e) {
    const { key, value } = e.currentTarget.dataset;
    this.setData({
      [`selectedSpecs.${key}`]: value
      
    });
  },

  // 减少购买数量
  minusQuantity: function () {
    let quantity = this.data.quantity;
    if (quantity > 1) {
      this.setData({ quantity: quantity - 1 });
    }
  },

  // 增加购买数量
  addQuantity: function () {
    let quantity = this.data.quantity;
    // 可以添加库存限制
    if (quantity < this.data.product.stock) {
      this.setData({ quantity: quantity + 1 });
    } else {
      wx.showToast({
        title: '库存不足',
        icon: 'none'
      });
    }
  },

  // 手动输入数量
  onQuantityInput: function (e) {
    let value = parseInt(e.detail.value) || 1;
    if (value < 1) value = 1;
    if (value > this.data.product.stock) {
      value = this.data.product.stock;
      wx.showToast({
        title: '已达最大库存',
        icon: 'none'
      });
    }
    this.setData({ quantity: value });
  },

  // 加入购物车
  addToCart: function () {
    const { product, quantity, selectedSpecs } = this.data;

    // 检查是否所有属性都已选择
    for (let i = 0; i < product.specs.length; i++) {
      const spec = product.specs[i];
      if (!selectedSpecs[spec.key]) {
        wx.showToast({
          title: `请选择${spec.name}`,
          icon: 'none'
        });
        return;
      }
    }

    const itemToAdd = {
      id: product.id,
      name: product.name,
      image: product.images[0],
      price: product.price,
      quantity: quantity,
      selectedSpecs: selectedSpecs,
      selectedSpecsText: Object.values(selectedSpecs).join(' '), // 用于购物车显示
      checked: true // 默认选中
    };

    let cart = wx.getStorageSync('cart') || [];
    let existingItemIndex = -1;

    // 检查购物车中是否已存在相同商品和相同规格的商品
    for (let i = 0; i < cart.length; i++) {
      const cartItem = cart[i];
      let specsMatch = true;
      for (const key in selectedSpecs) {
        if (cartItem.selectedSpecs[key] !== selectedSpecs[key]) {
          specsMatch = false;
          break;
        }
      }
      if (cartItem.id === itemToAdd.id && specsMatch) {
        existingItemIndex = i;
        break;
      }
    }

    if (existingItemIndex !== -1) {
      // 存在相同商品和规格，更新数量
      cart[existingItemIndex].quantity += quantity;
    } else {
      // 不存在，添加新商品
      cart.push(itemToAdd);
    }

    wx.setStorageSync('cart', cart);
    this.updateCartCount(); // 更新购物车角标

    wx.showToast({
      title: '已加入购物车',
      icon: 'success'
    });
  },

  // 立即购买
  buyNow: function () {
    const { product, quantity, selectedSpecs } = this.data;

    // 检查是否所有属性都已选择
    for (let i = 0; i < product.specs.length; i++) {
      const spec = product.specs[i];
      if (!selectedSpecs[spec.key]) {
        wx.showToast({
          title: `请选择${spec.name}`,
          icon: 'none'
        });
        return;
      }
    }

    const orderItems = [{
      id: product.id,
      name: product.name,
      image: product.images[0],
      price: product.price,
      quantity: quantity,
      selectedSpecs: selectedSpecs,
      selectedSpecsText: Object.values(selectedSpecs).join(' ')
    }];

    // 将立即购买的商品存储到缓存，以便结算页获取
    wx.setStorageSync('orderItemsToCheckout', orderItems);

    wx.navigateTo({
      url: '/pages/shopping/checkout/checkout?from=buyNow'
    });
  },

  // 联系客服
  contactSeller: function () {
    wx.showToast({
      title: '联系客服功能开发中...',
      icon: 'none'
    });
  },

  // 跳转到购物车页面
  goToCartPage: function () {
    // wx.switchTab({ // 如果购物车是 TabBar 页面，使用 switchTab
    //   url: '/pages/shopping/cart/cart'
    // });
    // 如果购物车不是 TabBar 页面，使用 navigateTo
    wx.navigateTo({
      url: '/pages/shopping/cart/cart'
    });
  }
})